|
|||
VBA Kodlama | |||
VBA (Visual Basic for Applications), y²llar
boyunca Microsoft Office uygulamalar² ile kullan²lacak programlama dili
oldu. VBA programc²lar²n (ve gⁿτlⁿ kullan²c²lar²n) a■a≡²dakileri yapmas²n²
sa≡layan basit bir programlama dilidir:
- Office uygulamalar²n² geni■letmek ve otomatize etmek Temel fikir gerτekten basittir: insanlar²n uygulamalar² ÷zgⁿnle■tirebilmeleri ve kendi ortamlar²na uygun beceriler ekleyebilmeleri iτin, birkaτ uygulama iτin ortak bir dil ve programlama ortam² olu■turmak. Bu yⁿzden VBA'in basit olmas² gerekiyordu. VBA'i gereksiniminiz olan veya ⁿ■enebilece≡imiz herhangi bir tⁿr uygulamay² geli■tirmek iτin kullanmazs²n²z. VBA sadece temel denetim yap²lar²n², matematik ve karakter katar² fonksiyonlar²n² ve de≡i■ken kullan²m becerilerini sunar. VBA'in as²l gⁿcⁿ, onu destekleyen uygulamalar²n nesnelerinden kaynaklan²r. Microsoft, VBA 5'in piyasaya sⁿrⁿlmesiyle birlikte bu dili ⁿrⁿnlerine programlanabilir ÷zellikler eklemek isteyen ⁿreticilere lisanslamaya ba■lad²: ╓rne≡in Autodesk AutoCAD. AutoCAD y²llard²r programlanabilen bir ortamd² ama, programlama dili ÷zgⁿndⁿ ve ba■ka uygulamalar ile payla■²lam²yordu. Ba■ka pek τok ⁿretici de yaz²l²mlar²na programlama dilleri veya ba■ka otomizasyon y÷ntemleri eklediler. Ancak bu τok say²da uygulamadan olu■an parτalar² bir araya getirmede tutkal i■levi g÷recek olan global bir dilin gereklili≡i aτ²kt². Sonunda Microsoft VBA'in di≡er ⁿreticilerin bu gereksinimlerini kar■²layan bir sⁿrⁿmⁿyle ortaya τ²kt², ▄stelik VBA Windows alt²nda uygulamalar² otomatize etmek iτin kullan²lan evrensel bir dil olma yolunda. Gⁿnⁿmⁿzde τo≡u ■irket rafta sat²lan yaz²l²mlar² kullan²r ve onlar² ÷zgⁿnle■tirme gereksinimleri vard²r. Amerika'daki i■letmelerin yar²s²ndan τo≡u Microsoft Office ⁿrⁿnlerini kullan²r. ▄stelik bu i■letmelerin pek τo≡u da bu uygulamalar² kendi i■letme gereksinimlerine uyarlamak iτin VBA kullan²r. Bu e≡ilim gelecekte sⁿrecek ve gⁿτlenecek. Uygulamalar² sadece ÷zgⁿnle■tirme gereksinimi de≡il, ayn² zamanda onlar² ileti■im kuracak ■ekilde birbirine ba≡lama gereksinimi var. VBA bunu da yapar, ⁿstelik bunun bir sonucu olarak, VBA programc²lar²na olan gereksinim de ÷nⁿmⁿzdeki birkaτ y²l iτerisinde artacak. Gⁿnⁿmⁿz uygulamalar² o kadar gⁿτlⁿ ve o kadar τok ÷zelli≡e sahip ki, ÷zgⁿn uygulamalar geli■tirmek art²k mant²kl² de≡il. Bunun yerine mevcut uygulamalar² ÷zgⁿnle■tirerek bir arada τal²■malar²n² sa≡lamak daha mant²kl². Office 97 uygulamalar² bile tipik bir ■irketin gⁿnlⁿk bilgisayar i■lemlerini kar■²lamaya yeterlidir. VBA deste≡i veren τok say²da ⁿτⁿncⁿ parti uygulamay² da dⁿ■ⁿnⁿrseniz, onun ■irket ortamlar²ndaki ÷nemini kolayca tahmin edebilirsiniz. Sybex Yazarlar² - Microsoft Visual Basic 6 Temel Kullan²m Klavuzu |
|||
VBA Nedir? | |||
Aτ²l²m², "Visual Basic For Application" Vba Excel Ortam²nda Visual Basic programla diliyle uygulamalar geli■tirmek manas²na gelir. (Konumuz Excel oldu≡u iτin Excel ortam² diyoruz. Bu MSAccess veya MSWord' de olabilir vs...) Sybex grubunun aτ²klamalar²na biz de ayn² ■ekilde kat²l²yoruz. | |||
Program²n ya da Program Parτac²klar²n² Nas²l Deneyebiliriz? |
|||
Program parτas²n² her ne olursa olsun Vba
kod sayfas²nda Sub...End Sub deyimi aras²na yazmal²s²n²z. Daha sonra Excel tablosuna da Formlar Araτ ╟ubu≡u'nda bulunan dⁿ≡me ikonuna t²klayarak, Excel τal²■ma sayfas²na τizin.Dⁿ≡me ⁿzerinde sa≡ tu■a t²klay²n ve aτ²lan menⁿden Makro Ata komutunu seτin. ╟²kan pencereden makro ad²n² t²klay²n ve Tamam dⁿ≡mesine bas²n. Art²k kod sayfas²ndaki program²n²z² dⁿ≡meye atam²■ oldunuz. Program² τal²■t²rmak iτin Dⁿ≡meye t²klaman²z yeterli. Biz yine de bu anlatt²klar²m²z² basit bir ÷rnekle a■a≡²da ad²m ad²m izah edelim. Elimizde bulunan Program parτas² Range("B2").Select olsun.
|
|||
Sub Makrom() Range("B2").Select End Sub |
|||
Fark etti≡iniz gibi Sub deyiminden sonra
program²m²za Makrom ismini verdik. 4.▐imdi de Excel ╟al²■ma sayfas²na geτilir. E≡er aτ²k de≡il ise Formlar araτ τubu≡u aτ²l²r. 5. Bu τubuk ⁿzerindeki Dⁿ≡me ikonuna t²klan²r ve ╟al²■ma sayfas²na bir dⁿ≡me τizilir. 6.Makro penceresi otomatik aτ²lacakt²r. E≡er aτ²lmad²ysa dⁿ≡menin ⁿzrinde farenin sa≡ tu■una t²klan²r ve Makro penceresi aτ²l²r. 7.Aτ²lan makro penceresinde Makrom ismine t²klan²r ve Tamam dⁿ≡mesine t²klan²r. ▌■te bu kadar, Makroyu τal²■t²rmak iτin Excel ╟al²■ma Sayfas²ndaki dⁿ≡meye t²klamak yeterli. Yukardaki Makro sonucunda dⁿ≡meye t²klan²rsa B2 hⁿcresi seτilecektir. Yeni ba■layanlar² da dⁿ■ⁿndⁿ≡ⁿmⁿz iτin en basit kodlamadan ba■layarak a■a≡²da vermeye τal²■aca≡²z. E≡er numaraland²rma varsa birden fazla y÷ntem ÷nerdi≡imiz manas²na gelir. Bazan uzun kodlamadan ziyade k²sa kodlar tercih edilir. |
|||
De≡i■ik Macro Kod ╓rnekleri | |||
1. Hⁿcre Seτmek. Range("B2").Select Cells(2,1).Select [B2].Select 2. Hⁿcreye de≡er atamak. Range("B2").Value=100 'say²sal de≡er Range("B2").Value="M. Temel Korkmaz" 'Text; t²rnak iτinde 3. Hⁿcredeki Fontun Bⁿyⁿklⁿ≡ⁿnⁿ de≡i■tirmek. 4. Hⁿcredeki fontun ad²n² de≡i■tirmek. 5. Hⁿcredeki fontu Kal²n,▌talic ve Alt² ╟izgili
yapmak. veya Range("B2").Select 6. Hⁿcrenin dolgu rengini de≡i■tirmek. 7.Hⁿcrenin Fontunun rengini de≡i■tirmek. 8. Hⁿcreye Formⁿl yazd²rmak. 9. Aktif olan hⁿcrenin etraf²ndaki hⁿcreyi
seτmek 10. Aktif olan hⁿcrenin belirtilen kadar uza≡²ndaki
hⁿcreyi seτmek. 11. Aktif hⁿcreden belirtilen uzakl²ktaki hⁿcreye
de≡er atamak. 12. Aktif hⁿcrenin ⁿzerindeki iki hⁿcrenin
de≡erleri toplan²r ve sonuτ aktif olan hⁿcreye yaz²l²r. 13. Seτili hⁿcrelerdeki biτimleri siler. 14.Seτili hⁿcreleri a■a≡² ÷teler. 15. Seτili hⁿcrelere ait hⁿm sat²r² ÷telemek. 16. Seτili hⁿcrelere ait tⁿm sⁿtunu ÷telemek. 17.Aτ²k olan Excel ╟al²■ma Kitab²n²n belirtilen
sayfas²ndaki istenen hⁿcreye de≡er atar. 18.Yap²lan seτimlerde bo■ olmayan hⁿcre say²s²n²
verir. 19. 18. maddedeki kodlamada 'CountA' da bulunan
'A' kald²r²l²rsa seτimde sadece kaτ hⁿcrede say² (rakam) varsa onlar²n
adedini verir. 20.Seτili hⁿcrelerin say²s²n² verir. 21. Seτimin sat²r say²s²n² verir. 22. Seτimin sⁿtun say²s²n² verir. 23. De≡i■ik b÷lgelerdeki seτili alanlar²n sⁿtun
say²s²n² verir. alankonturu = Selection.Areas.Count 24.Seτili hⁿcrenin
alt²nda veriler varsa onlar² seτer. ▌lk bo■ hⁿcreden sonra ilk de≡er olan
hⁿcreyi seτer. 25. 24. de ⁿstteki hⁿcreler iτin ayn² ilemi
yapar. 26. 24. de sa≡daki hⁿcreler iτin ayn² i■lemi
yapar. 27. 24. de soldaki hⁿcreler iτin ayn² i■lemi
yapar. 28. Aktif hⁿcrenin etraf²ndaki dolu hⁿcreleri
seτer. 29. Seτimin etraf²ndaki dolu hⁿcreleri seτer. 30. Aktif hⁿcrenin bulundu≡u sⁿtunun tamam²n²
seτer. 31. Seτili hⁿcrelerin bulunduklar² sⁿtunlar²
tamamen seτer. 32. ╟al²■ma sayfas²nda bulunan bⁿtⁿn hⁿcreleri
seτer. 33. Dolu hⁿcrelerden sonraki ilk bo■ hⁿcreyi
seτer. (Sⁿtunlar iτin.) |
|||